package cn.ywsj.ywsjmidtier.entity.DTO;

import cn.ywsj.ywsjmidtier.entity.BaseGroup;
import cn.ywsj.ywsjmidtier.entity.PaymentParameter;
import lombok.Data;

import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.List;

@Data
public class BuyerImportDTO {

    private static final long serialVersionUID = -8272158712221263366L;

    private Long custId;

    @Pattern(regexp = "^((\\+86)?(13\\d|14[5-9]|15[0-35-9]|166|17[0-8]|18\\d|19[8-9])\\d{8})$", message = "{com.itonghui.user.account.check}", groups = {BaseGroup.Insert.class})
    private String userName;

    @Size(min = 6, max = 20, message = "{com.itonghui.user.password.Length.message}", groups = {BaseGroup.Insert.class})
    private String password;

    @Pattern(regexp = "^[0-9a-zA-Z_]{1,15}$", message = "{com.itonghui.user.account.checkcode}", groups = {BaseGroup.Insert.class})
    private String sapCompanyCode;

    @Size(min = 0, max = 20, message = "{com.itonghui.company.custname.exceedtwenty}", groups = {BaseGroup.Insert.class})
    private String custName;

            @Size(max = 20, message = "{com.itonghui.company.psptId.exceedtwenty}", groups = {BaseGroup.Insert.class})
            @Pattern(regexp = "^[0-9\\ ]+$", message = "{com.itonghui.company.psptId.onlynum}", groups = {BaseGroup.Insert.class})
    private String psptId;

    private String rsrvStr3;

    private String rsrvStr4;

    @Size(max = 20, message = "{com.itonghui.company.juristic.exceedtwelve}", groups = {BaseGroup.Insert.class})
    private String juristic;

    @Size(max = 20, message = "{com.itonghui.company.contactName.exceedtwenty}", groups = {BaseGroup.Insert.class})
    private String contactName;

    @Pattern(regexp = "^((\\+86)?(13\\d|14[5-9]|15[0-35-9]|166|17[0-8]|18\\d|19[8-9])\\d{8})$", message = "{com.itonghui.user.groupContactPhone.noteffect}", groups = {BaseGroup.Insert.class})
    private String groupContactPhone;

    @Pattern(regexp = "^(([0\\+]\\d{2,3}-)?(0\\d{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$", message = "{com.itonghui.user.company.noteffect}", groups = {BaseGroup.Insert.class})
    private String faxNbr;

    @Pattern(regexp = "^$|^(([0\\+]\\d{2,3}-)?(0\\d{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$", message = "{com.itonghui.company.cellPhone.noteffect}", groups = {BaseGroup.Insert.class})
    private String cellPhone;

    @Size(max = 30, message = "{com.itonghui.company.email.exceedthirty}", groups = {BaseGroup.Insert.class})
    @Pattern(regexp = "^([0-9A-Za-z\\-_\\.]+)@([0-9a-z]+\\.[a-z]{2,3}(\\.[a-z]{2})?)$", message = "{com.itonghui.company.email.noteffect}", groups = {BaseGroup.Insert.class})
    private String email;

    @Size(max = 30, message = "{com.itonghui.company.companyAddress.exceedthirty}", groups = {BaseGroup.Insert.class})
    private String companyAddress;

    @Pattern(regexp = "^$|^\\d{6}$", message = "{com.itonghui.company.postCode.noteffect}", groups = {BaseGroup.Insert.class})
    private String postCode;

    @Size(max = 8, message = "{com.itonghui.company.localEmpCount.exceedeight}", groups = {BaseGroup.Insert.class})
    @Pattern(regexp = "(^[1-9]([0-9]*)$|^[0-9]$)", message = "{com.itonghui.user.localEmpCount.onlymath}", groups = {BaseGroup.Insert.class})
    private String localEmpCount;

    @Pattern(regexp = "^[0-9a-zA-Z]{6,30}$", message = "{com.itonghui.company.bankingAccount.noteffect}", groups = {BaseGroup.Insert.class})
    private String bankingAccount;

    @Size(max = 30, message = "{com.itonghui.company.bankAccount.exceedthirty}", groups = {BaseGroup.Insert.class})
    private String bankAccount;

    @Size(max = 50, message = "{com.itonghui.company.bankDeposit.exceedthirty}", groups = {BaseGroup.Insert.class})
    private String bankDeposit;

    @Size(max = 30, message = "{com.itonghui.company.bankCode.exceedthirty}", groups = {BaseGroup.Insert.class})
    private String bankCode;

    private Integer custType;

    private Integer userType;

    private Integer custState;

    private String psptTypeCode;

    private String psptAddr;

    private String eparchyCode;

    private String cityCode;

    private String website;

    private String enterpriseScope;

    private Long userId;

    private String qq;

    private String phone;

    private Integer userState;

    private String formerName;

    private Date registrationTime;

    private Double registrationCapital;

    private String registrationCapitalStr;

    private String status;

    private String validity;

    private String sapCompanyAccount;

    private String sysId;

    private Date expireTime;

    private Integer supplieState;

    private Long durId;

    private String supCustId;

    private String roleAuthId;

    private String roleName;

    private Integer IsEqual;

    private String callingAreaCode;

    private String enterpriseTypeCode;

    private String enterpriseSizeCode;

    private Long juristicCustId;

    private String juristicTypeCode;

    private String chinaEmpCount;

    private String abbreviated;

    private String companyScope;

    private Date addDate;

    private String levelId;

    private String levelName;

    private Integer commend;

    private Long commendUserId;

    private Date commendTime;

    private Integer display;

    private Long checkUser;

    private Date checkTime;

    private Date lastTime;

    private String images;

    private Long operUser;

    private Date operTime;

    private String certification;

    private Integer infoAuth;

    private String companyAuthId;

    private Integer autoState;

    private Integer custRage;

    private String custSupply;

    private String custBuying;

    private Date authDate;

    private List<PaymentParameter> paymentParameters;
}
